package com.zh.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.blog.dto.CategoryBackDto;
import com.zh.blog.dto.CategoryDto;
import com.zh.blog.dto.CategoryOptionDto;
import com.zh.blog.model.Category;
import com.zh.blog.vo.CategoryVO;
import com.zh.blog.vo.ConditionVO;
import com.zh.blog.vo.PageResult;

import java.util.List;

/**
 * 分类服务
 * @author ZhengHao
 * Created At 2022/8/3.
 **/
public interface CategoryService extends IService<Category> {
    /**
     * 查询分类列表
     * @return 分类列表
     */
    PageResult<CategoryDto> listCategories();

    /**
     * 查询后台分类
     * @param conditionVO 条件
     * @return 后台分类
     */
    PageResult<CategoryBackDto> listBackCategories(ConditionVO conditionVO);

    /**
     * 搜索文章分类
     * @param conditionVO 条件
     * @return 分类列表
     */
    List<CategoryOptionDto> listCategoriesBySearch(ConditionVO conditionVO);

    /**
     * 添加或者修改分类
     * @param categoryVO 分类
     */
    void saveOrUpdateCategory(CategoryVO categoryVO);

    /**
     * 删除分类
     * @param categoryIdList 分类ID集合
     */
    void deleteCategories(List<Integer> categoryIdList);
}